Ext.onReady(function() {
	var sm = new Ext.grid.CheckboxSelectionModel();
	
			var cm = new Ext.grid.ColumnModel([
				new Ext.grid.RowNumberer(),
				sm,
					{
						header : '姓名',
						dataIndex : 'name',
						tooltip : '姓名'
					}, {
						header : '性别',
						dataIndex : 'sex',
						renderer:function(v) {
							if (v == '男') {
								return '♂';
							} else {
								return '♀';
							}
						}
					}, {
						header : '生日',
						dataIndex : 'birthday', 
						format:'Y-m-d',
						renderer:Ext.util.Format.dateRenderer('Y-m-d')
					}, {
						header : '操作',
						dataIndex : 'make',
						menuDisabled:true,
						renderer:function(v) {
							return '<span style="margin-right:10px"><a href="#">修改</a></span><span><a href="#">删除</a></span>';
						}
					}]);

			var data = [{
						name : '张氏',
						sex : '男',
						birthday : Date.parseDate("1990-02-14", "Y-m-d")
					}, {
						name : '李四',
						sex : '女',
						birthday : Date.parseDate('1990-02-14', 'Y-m-d')
					}, {
						name : '王五',
						sex : '男',
						birthday : Date.parseDate('1990-02-14', 'Y-m-d')
					}];

			var proxy = new Ext.data.MemoryProxy(data);

			var Human = new Ext.data.Record.create([{
						name : 'name',
						type : 'string',
						mapping : 'name'
					}, {
						name : 'sex',
						type : 'string',
						mapping : 'sex'
					}, {
						name : 'birthday',
						type : 'string',
						mapping : 'birthday'
					}]);

			var reader = new Ext.data.JsonReader({}, Human);

			var store = new Ext.data.Store({
						proxy : proxy,
						reader : reader
					});

			store.load({
				params:{
					start:0,
					limit:2
				}
			});
			
			var grid = new Ext.grid.GridPanel({
				renderTo : Ext.getBody(),
				title : 'human',
				width : 1000,
				autoHeight : true,
				cm : cm,
				sm:sm,
				store : store,
//				autoExpandColumn:'birthday',
				 //分页工具栏  
		        bbar:new Ext.PagingToolbar({  
		            store:store,  
		            pageSize:2,  
		            displayInfo:true,  
		            diaplayMsg:"本页显示第{0}条到第{1}的数据，一共两条",  
		            emptyMsg:"没有记录"  
		        }),
		         buttonAlign:"center",  
        buttons:[{  
            text:"第一行",  
            handler:function(){  
                var rsm = grid.getSelectionModel();//得到行选择模型  
                rsm.selectFirstRow();  
            }  
        },{  
            text:"上一行",  
            handler:function(){  
                var rsm = grid.getSelectionModel();  
                if(!rsm.hasPrevious()){  
                    Ext.Msg.alert("警告","已经达第一行");  
                }else{  
                    rsm.selectPrevious();  
                }  
            }  
        },{  
            text:"下一行",  
            handler:function(){  
                var rsm = grid.getSelectionModel();  
                if(!rsm.hasNext()){  
                    Ext.Msg.alert("警告","已经到达最后一行");  
                }else{  
                    rsm.selectNext();  
                }  
            }  
        },{  
            text:"最后一行",  
            handler:function(){  
                var rsm = grid.getSelectionModel();  
                rsm.selectLastRow();  
            }  
        },{  
            text:"全选",  
            handler:function(){  
                var rsm = grid.getSelectionModel();  
                rsm.selectAll();  
            }  
        },{  
            text:"全不选",  
            handler:function(){  
                var rsm = grid.getSelectionModel();  
                rsm.deselectRange(0,grid.getView().getRows().length-1);  
            }  
        },{  
            text:"反选",  
            handler:function(){  
                var rsm = grid.getSelectionModel();  
                //获得总行数grid.getView().getRows().length  
                for(var i=grid.getView().getRows().length-1;i>=0;i--){  
                    if(rsm.isSelected(i)){
                        rsm.deselectRow(i);  
                    }else{
                        rsm.selectRow(i,true);  
                    }  
                }  
            } 
        },{
        /* 
             * Grid视图被定义为Ext.grid.GridView类，可以根据用户提供的参数渲染表格，得到原始的行与列的信息。 
             *  
             * Store由结构和数据构成，每一行都是一个Ext.data.Record.Record都有name标识 
             * grid.getStore()方法可以获得GridPanel的Store,getAt(i)取得第i个Record 
             * get(Memo)是获得Record的Memo的值; 
             *  
             */  
            text:"测试",  
            handler:function(){  
                var view = grid.getView();  
                var rsm = grid.getSelectionModel();//得到行选择模型  
                var r = "";  
                for(var i=0;i<view.getRows().length;i++){  
                    if(rsm.isSelected(i)){  
                        r += grid.getStore().getAt(i).get("name")+"<br>";  
                    }  
                }  
                Ext.Msg.alert("选择","您选择的数据有: <br>"+r);  
            }  
              
        },{  
            text:"增加新人物",  
            handler:function(){  
                var view = grid.getView();  
                //创建一个JSON对象备用：当添加新行的时候将这个人的信息添加到表格上  
                var obj = {  
                            name:"新人物",  
                            nex:"女",  
                            birthday:Date.parseDate("1990-03-10","Y-m-d") 
                        };  
                //将obj与Human合并  
                var human = new Human(obj);  
                grid.getStore().insert(0,human);//添加到行首  
//              grid.getStore().add(human);//添加到行尾  
                view.refresh();  
            }  
              
        },{  
            /* 
             * 删除选择行： 
             * <1> 循环遍历所有行 
             * <2> 判断当前行是否被选中 
             * <3> 删除选中的行 
             */  
            text:"删除选择行",  
            handler:function(){  
                var rsm = grid.getSelectionModel();  
                var view = grid.getView();  
                var store = grid.getStore();  
                for(var i=view.getRows().length-1;i>=0;i--){ 
                    if(rsm.isSelected(i)){ 
                        store.remove(store.getAt(i)); 
                    } 
                } 
                view.refresh(); 
            } 
        },{ 
            //删除所有行  
            text:"删除所有行",  
            handler:function(){
                var store = grid.getStore(); 
                var view = grid.getView(); 
                store.removeAll(); 
                view.refresh(); 
            }
         }]
	});

});